#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "nvs_flash.h"

#include <stdio.h>
#include "led.h"
#include "key.h"
#include "exit.h"

/**
 * @brief       程序入口
 * @param       无
 * @retval      无
 */
void app_main(void)
{
    uint8_t key_value = BOOT_LIFT;
    uint8_t mode = 1U;
    // 系统级驱动
    esp_err_t err;
    err = nvs_flash_init();
    if (err == ESP_ERR_NVS_NO_FREE_PAGES ||
        err == ESP_ERR_NVS_NEW_VERSION_FOUND)
    {
        ESP_ERROR_CHECK(nvs_flash_erase());
        ESP_ERROR_CHECK(nvs_flash_init());
    }
    // 用户程序
    #pragma region 基于程序查询的方式实现BOOT按钮控制LED灯
    // led_init();
    // boot_init();
    // while (1)
    // {
    //     key_value = boot_scan(mode);
    //     switch (key_value)
    //     {
    //     case BOOT_PRES:
    //     {
    //         LED_TOGGLE();
    //         break;
    //     }
    //     default:
    //     {
    //         break;
    //     } 
    //     }
    //     vTaskDelay(pdMS_TO_TICKS(100));
    // }
    #pragma endregion

    #pragma region 基于程序中断的方式实现BOOT按钮控制LED灯
    led_init();
    exit_init();

    while(1)
    {
        vTaskDelay(pdMS_TO_TICKS(10));
    }
    #pragma endregion
}
